-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Start source compatibility suite, improve command line #226
Conversation
start with checking FT and NFT contracts and transactions
- add support for JSON output - make running old parser optional
- add support for JSON output - add benchmark option
i := 0 | ||
printErr := func(err error, filename string) { | ||
if i > 0 { | ||
println() | ||
} | ||
print(runtime.PrettyPrintError(err, filename, codes[filename], true)) | ||
_, writeErr := writer.Write([]byte(runtime.PrettyPrintError(err, filename, codes[filename], true))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Appreciate the flexibility here 👍
I've pushed more commits that extend the script. Ishould have opened a separate PR instead of adding commits to the existing PR, but I didn't realize / forgot when I commit pushed. The PR should be ready for review now! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work Bastian! I remember us talking about this before -- very cool to see! 🎉
Would be cool to see those parser stats for each opened PR actually!
Set up a local environment with much better stable performance and documented it in setup.md. Parser Benchmarks
Checker Benchmarks
|
Start a source compatibility suite, similar to Swift's, to prevent regressions and understand what impact changes in the language and implementation have on real-world Cadence projects.
The suite contains a set of repository descriptions. When the suite is run, the repositories get cloned an checked. The runner can optionally run benchmarks and compare against another commit / branch, producing output in the terminal (pretty), as JSON, or Markdown.
In the future it we can integrate this as part of CI, maybe as a periodic job.
See the example report at the end of the PR description.
Improve the command line and REPL by providing the Flow-specific value and type declarations (e.g.
getAccount
), though no implementations (the implementations abort with an error message the functionality is not supported)Add a new command line program which only checks a given program.
Example Report
Parser Errors
Parser Benchmarks
Checker Errors
Details
Details
Details
Checker Benchmarks